#ifndef _FIG_ENEMY_3DROTATE_H_
#define _FIG_ENEMY_3DROTATE_H_


#include "fig_enemy_craft.h"


class FIGEnemy3DRotate : public FIGEnemyCraft 
{
public:

	struct		ShipSpriteInfo
	{
		enum	CRAFT_SPRITES
		{
			CRAFT_LEFT5,
			CRAFT_LEFT4,
			CRAFT_LEFT3,
			CRAFT_LEFT2,
			CRAFT_LEFT1,		
			CRAFT_MIDDLE,
			CRAFT_RIGHT1,
			CRAFT_RIGHT2,
			CRAFT_RIGHT3,
			CRAFT_RIGHT4,
			CRAFT_RIGHT5,
			CRAFT_SPRITE_COUNT
		};

		ShipSpriteInfo();
		~ShipSpriteInfo();

		

		void								Tick(	float dt, float Rotation);
		void								Reset(float Rotation);

		void								AddSprite(const std::string& Str);
		void								GoingLeft();
		void								GoingRight();
		void								GoingMid();   

		CRAFT_SPRITES						m_ShipIndex;
		float								m_PositionCounter;
		float								m_RotationPrevious;

		std::vector<ui::UISprite*>			m_Sprites;
				
	};

	FIGEnemy3DRotate(ENEMY_TYPES EnemyType);
	

	virtual void							Render(const math::Vec2& Offset, float Scale);
	virtual void							Tick(float dt);	
	virtual void							Load(const std::string& Name);
	virtual const math::Vec2&				GetSize(){ return m_Size3DRotateEnmey; };
	
	
protected:

	virtual float							GetExtraRotation() const { return m_RotationUFO; };

	ShipSpriteInfo							m_ShipSpriteInfo;
	bool									m_IsUFORotate;
	float									m_RotationUFO;
	math::Vec2								m_Size3DRotateEnmey;
	
};

#endif
